table SObjPrototype
{
	struct Flags {
		bool isExclusiveTrigger;
		bool isRemoveAfterTriggerDone;
		bool isPlayerInteresting;
		bool isCreatureInteresting;
		bool isActivity;
	};
	struct CostItem {
		uint32 itemId;
		uint32 itemNum;
	};

	required uint32 sobjTypeId;
	required Flags sobjFlags;

	required uint32 minRespawnTime;
	required uint32 maxRespawnTime;

	required uint32 teleportPointID;
	required uint32 teleportDelayTime;

	required uint32 lootSetID;
	required uint32 triggerSpellID;
	required uint32 triggerSpellLv;
	required uint32 triggerAnimTime;
	required CostItem[] triggerCostItems;

	required uint32 sobjReqQuestDoing;

	required float radius;

	required uint32 spawnScriptId;
	required string spawnScriptArgs;
	required uint32 playScriptId;
	required string playScriptArgs;

	(key=sobjTypeId, tblname=sobj_prototype)
}

table StaticObjectSpawn
{
	struct Flags {
		bool isRespawn;
		bool isPlaceholder;
	}
	required uint32 spawnId;
	required Flags flags;
	required uint32 entry;
	required uint32 map_id;
	required uint32 map_type;
	required float x, y, z, o;
	required float radius;
	(key=spawnId, tblname=staticobject_spawn)
}